package com.probiz.estore.catalog.dao;

import com.probiz.estore.catalog.model.ContentCategorySearchCriteria;
import com.probiz.estore.common.model.catalog.ContentCategory;
import com.probiz.estore.core.search.SearchCriteria;

import java.util.List;

/**
 * Dao interface for ContentCategory.
 */
public interface ContentCategoryDao extends BaseCategoryDao<ContentCategory> {
    /**
     * 获取指定目录编码的目录
     *
     * @param categoryCode 目录编码
     * @return 含指定目录编码的目录
     */
    public ContentCategory getCategoryByCode(String categoryCode);

    /**
     * 搜索内容目录
     *
     * @param contentCategorySearchCriteria 自定义搜索条件
     * @param searchCriteria                分页搜索条件
     * @return 内容搜索结果
     */
    public List<ContentCategory> searchByCriteria(ContentCategorySearchCriteria contentCategorySearchCriteria, SearchCriteria searchCriteria);

    /**
     * 获取导航目录，即获得上级目录和自身目录，不包括根目录
     *
     * @param categoryId 目录主键
     * @return 导航目录。例如 获得金币[卖家帮助，会员服务]
     */
    public List<ContentCategory> getNavigationCategories(Integer categoryId);
    /**
     * 根据目录编码找出目录个数，但该目录的不能是参数id所指定的目录
     *
     * @param categoryCode 目录编码
     * @param categoryId 目录id
     * @return 个数
     */
    public Long getSizeByCategoryCodeByNotCategoryId(String categoryCode,Integer categoryId);
}